package com.smart.community.user.service;

/**
 * 缓存服务接口
 *
 * @author Wu.Liang
 * @since 2025-07-05
 */
public interface CacheService {

    /**
     * 设置缓存
     *
     * @param key 缓存键
     * @param value 缓存值
     * @param expireTime 过期时间（秒）
     * @throws Exception 统一异常
     */
    void set(String key, Object value, long expireTime) throws Exception;

    /**
     * 获取缓存
     *
     * @param key 缓存键
     * @param clazz 返回类型
     * @return 缓存值
     * @throws Exception 统一异常
     */
    <T> T get(String key, Class<T> clazz) throws Exception;

    /**
     * 删除缓存
     *
     * @param key 缓存键
     * @throws Exception 统一异常
     */
    void delete(String key) throws Exception;

    /**
     * 检查缓存是否存在
     *
     * @param key 缓存键
     * @return 是否存在
     * @throws Exception 统一异常
     */
    boolean exists(String key) throws Exception;
} 